#include <stdio.h>

/* 数据类型 */

int main()
{

#if 0
    进制: 
    /* 16进制 */
    0X121 = 1 + 16^2 + 2 * 16^1 + 1*16^0 = 256 + 32 + 1 = 289.
    /* 八进制的0121 */
    0121 = 1 * 8^2 + 2 * 8^1 + 1*8^0 = 64 + 16 + 1 = 81.
    /* 十进制 */
    ...
    /* 二进制 */
    10011100 = 1*2^7 + 1 * 2^4 + 1*2^3 + 1* 2^2 = 128 + 16 + 8 + 4 = 156.

    十进制:   0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
    十六进制: 0 1 2 3 4 5 6 7 8 9  A  B  C  D  E  F 10


    一个字节(bytes) = 8位(bits)
    一个字节表示的数的最小值:0   <-> 0000 0000
    一个字节表示的数的最大值:255 <-> 1111 1111
    
    两个字节(bytes) = 16位(bits)
    两个字节表示的数的最小值:0     <-> 0000 0000 0000 0000
    两个字节表示的数的最大值:65535 <-> 1111 1111 1111 1111

    四个字节(bytes) = 32位(bits)
    四个字节表示的数的最小值:0     <-> 0000 0000 0000 0000 0000 0000 0000 0000
    四个字节表示的数的最大值:XXX   <-> 1111 1111 1111 1111 1111 1111 1111 1111

    八个字节(bytes) = 64位(bits)
    八个字节表示的数的最小值:0     <-> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
    八个字节表示的数的最大值:XXX   <-> 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

#endif

    #if 0
    /* 
     * 四个字节(bytes) = 32位(bits)
     * 四个字节表示的数的最小值:0     <-> 0000 0000 0000 0000 0000 0000 0000 0000
     * 四个字节表示的数的最大值:XXX   <-> 1111 1111 1111 1111 1111 1111 1111 1111
     */
    /* int 类型 */
    int a = 100;
    /* sizeof是计算占用的内存大小.(以字节为单位) */
    int len = sizeof(a);
    
    /* %d就是十进制打印 */
    printf("len:%d\n", len);
    printf("len:0X%x\n", len);
    #endif


    #if 0
    /* 
     * 两个字节(bytes) = 16位(bits)
     * 两个字节表示的数的最小值:0     <-> 0000 0000 0000 0000
     * 两个字节表示的数的最大值:65535 <-> 1111 1111 1111 1111
     */

    /* short 类型 */
    short a = 100;
    int len = sizeof(a);

    printf("len:%d\n", len);
    #endif


    #if 0
    /*
     * 八个字节(bytes) = 64位(bits)
     * 八个字节表示的数的最小值:0     <-> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
     * 八个字节表示的数的最大值:XXX   <-> 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111
     */
    long a = 100;
    int len = sizeof(a);

    printf("len:%d\n", len);
    #endif


    #if 0
    /*
     * 一个字节(bytes) = 8位(bits)
     * 一个字节表示的数的最小值:0   <-> 0000 0000
     * 一个字节表示的数的最大值:255 <-> 1111 1111
     */
    char ch = 'a';
    int len = sizeof(ch);
    printf("len:%d\n", len);
    #endif


    #if 1
     /* 
     * 四个字节(bytes) = 32位(bits)
     * 四个字节表示的数的最小值:0     <-> 0000 0000 0000 0000 0000 0000 0000 0000
     * 四个字节表示的数的最大值:XXX   <-> 1111 1111 1111 1111 1111 1111 1111 1111
     */

    /* 浮点数 (小数) 精度不同于double. */
    float b = 12.2;
    int len = sizeof(b);

    printf("len:%d\n", len);
    printf("b:%f\n", b);
    #endif


    #if 0
    /*
     * 八个字节(bytes) = 64位(bits)
     * 八个字节表示的数的最小值:0     <-> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
     * 八个字节表示的数的最大值:XXX   <-> 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111
     */
    /* 浮点数 (小数) 精度不同于float. */
    double b = 53.2;
    int len = sizeof(b);

    printf("len:%d\n", len);
    printf("b:%f\n", b);
    #endif

    return 0;
}